#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import re, math
import pymysql
import datetime
from util import mysql_util

# 输入输出
# name = input("please input name:")
name="xiajie"
print(name)

# 基本数据类型
a=1;
print("a的数据类型%s,值%s"%(type(a),a))
print(isinstance(a,int))
a=1.2;
print("a的数据类型%s,值%s"%(type(a),a))
a=True
print("a的数据类型%s,值%s"%(type(a),a))

# list里面的元素可以包含不一样的数据类型，包括另一个list,长度可以修改,元素有序可以重复
a=["asss",11,12.3,None,True]
print("a的数据类型%s,值%s"%(type(a),a))
# tuple的长度不可修改
a=("asss",11,12.3,None,True)
print("a的数据类型%s,值%s"%(type(a),a))
b=["xijaie",57,90,90.9,None,False]
print(b)
# 元素是1到9
b=list(range(1,10))
print(b)
# 在集合的后面加上xiaoxia
b.append("xiaoxia")
print(b)
# 在指定元素后面添加元素
b.insert(9,"xia")
print(b)
#把指定索引元素改变
b[2]="aaa"
print(b)
# 在list中删除最后一个元素
b.pop()
print(b)
#删除指定元素（不是索引）
b.remove(1)
print(b)
#把a集合里面的元素append进b集合中（一个一个元素进来）
b+=a;
print(b)
# 把a集合整个加到最后[2, 'aaa', 4, 5, 6, 7, 8 ('asss', 11, 12.3, None, True)]
b.append(a)
print(b)


# 运算符
print((23+12*2-4)/3)
# 求商
print(5//2)
# 求余
print(5%2)
# 平方
print(5**2)
#与
print(True and False)
# 或
print(True or False)
# 非
print(not False)

# Ascii码、大小写的转换
print(ord('a'))
print(chr(98))
print('cage'.encode("ASCII"))
print("中文".encode("UTF-8"))
# 前面的b代表后面的类型为bytes
print(b'cage'.decode("ASCII"))
# lenthse(长度，这里简写为len )
print(len("abcde"))
print(len("中文"))
# 区分大小写
print("sjkjDAD"=="sjkjdad")
print("sjkjDAD".lower()=="sjkjdad")
# 替换所有
print("shnmxiajiejkjn".replace("xiajie","xiaoxia"))
# 查找字符个数,不存在的返回-1
print("www.baodu.com".find("."))

# set集合(元素无序，不可重复，存储的是key)
s = set(["aaa",123, 123, True]);
print(s)
# 添加元素
s.add("fdsaa");
print(s)
# 删除首个符合条件的元素，与list里面一样
s.remove(123);
print(s)
# 删除第一个元素，无参
s.pop();
print("set: %s, length: %s"%(s, len(s)));
# 交集、合集
s2 = set([123, "fdcasc"]);
print(s & s2);
print(s | s2);

# dict（词典，字典）  键值对存储
d={"name":"xiajie","age":21}
print(d)
#改变name的value值
d["name"]="xiao"
print(d)
# 添加sex属性（有就改变，没有就添加）
d["sex"]="nv"
print(d)
#删除指定元素,在dict里面的pop必须指定参数
d.pop("age")
print(d)
# 输出name的value值
print(d["name"])

# ======== tuple （元组）========
t = ("cdsa", None, True, 33, ["aaaaa", "ccccc"])
print(t)
# 改变指定索引处的元素
t[4][0] = "vvvvvv"
print(t)

# 判断语句  有重叠的地方，遵从从上到下的原则，上面有符合的就输出，下面则不会执行
a=21;
if a<18:
    print("未成年")
elif a>=18 and a<30:
    print("青年")
elif a>=29 and a<50:
    print("壮年")
else :
    print("老年")

# 三目运算符 如果a>b就输出a，否则输出C
a,b,c=2,3,4;
print(a if a>b else c)

# function函数（方法）
# 无参函数
def function_1():
    print("This is first function")
    a="abcd"
    b=11
    return a,b

# 有参函数,
def function_2(name,age=21):
    print("hi %s, you are %s" % (name, age))

def function_3(*args):
    print(args)
    for item in args:
        print(item)

def function_4(**args):
    print(args)
    for key, value in args.items():
        print(key, value)

def function_5(name, *, age):
    print(name, age)

#     空函数
def function_6():
    pass

# 内部函数
def function_inner():
    print(int("22"))
    print(int(22.33))
    print(float(22))
    print(str(22))
    print(max(12, 24, 54, 33, 3))
    print(min(12, 24, 54, 33, 3))
    print(sum(range(1, 101)))
    print(" cdsa cdas vfds ".strip())
    print("[cdsa cdas vfds]".strip('[\'\']'))
    print(hex(12))
    print(math.sqrt(3))
    print("cdsacsadcd".capitalize())

class Person(object):
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def get_name(self):
        return self.name

# def function_7():
#     # try:
#     #     f = open("D:\\temp\\aaa.txt", encoding="UTF-8")
#     #     print(f.readlines())
#     # except Exception as e:
#     #     print(e)
#     #     raise Exception("错了，错了")
#     # finally:
#     #     print("cdscdsacascdascd")
#     with open("D:\\temp\\aaa.txt", encoding="UTF-8") as f:
#         print(f.readlines())

# ======== 数据库操作 ========
def mysql_insert():
    # 获取链接对象、游标对象
    conn = pymysql.connect(host='localhost', user='root', passwd='root', db='dashuju', charset='utf8')
    cur = conn.cursor()
    # 进行数据库操作
    insert_user = "insert into user(user_name, password, user_img, create_date) " \
                  "values('hyman1', '111111', '/temp/temp.jpg', '" + str(datetime.datetime.now()) + "')"
    cur.execute(insert_user)
    # 提交事务
    conn.commit()
    #关闭连接和游标
    cur.close()
    conn.close()

def mysql_query():
    # 获取链接对象、游标对象
    conn = pymysql.connect(host='localhost', user='root', passwd='root', db='dashuju', charset='utf8')
    cur = conn.cursor()
    # 进行数据库操作
    query_user = "select * from user"
    cur.execute(query_user)
    result = cur.fetchall()
    print(result)
    # 关闭连接和游标
    cur.close()
    conn.close()

def mysql_operation(sql):
    result = mysql_util.execute_(sql)
    print(result)

# main函数里面运行
if __name__ == '__main__':
    function_1()
    function_2("xiajie", 21)
    function_2("xiajie ")
    function_3("xiajie ", 33, True, None, "cdsacdsa", "cdfff")
    function_4(name="xiajie ", age=44, sex="man")
    function_5("xiajie ", age=55)
    f = function_1()
    print(f)
    function_6()
    function_inner()

    person = Person("xiajie", 44, "nv")
    print(person.get_name())
    person.sex = "man"
    print(person.sex)

    # function_7()
    insert_user = "insert into user(name,sex,address,tel,username, password) " \
                  "values('xiajie', '女', '贵州','1000 '，'xia','111'" + str(datetime.datetime.now()) + "')"
    query_user = "select * from user"
    mysql_operation(query_user)





